package com.SmartCare.service.medicine;

import com.baomidou.mybatisplus.extension.service.IService;
import com.SmartCare.common.Result;
import com.SmartCare.pojo.medicine.MedicationRecord;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 *  服务类
 */
public interface MedicationRecordService extends IService<MedicationRecord> {

    /**
     * 根据药单数据生成用药记录
     * @param listId 药单项的id
     * @return 不返回数据
     */
    Result addRecords(Long listId);

    /**
     * 更新用药情况
     * @param id 要进行更新的用药记录id
     * @param status 要修改成的用药情况状态值
     * @return 不返回数据
     */
    Result updateStatus(Long id, Integer status);

    /**
     * 获取老人的全部用药记录
     * @param elderlyId 老人id
     * @return 返回老人的全部用药记录
     */
    Result selectAllRecords(Long elderlyId);

    /**
     * 获取老人当天的用药记录
     * @param elderlyId 老人id
     * @return 返回当天的用药记录
     */
    Result selectToday(Long elderlyId);

    /**
     * 根据护工id查询用药记录表中的老人名称
     */
    Result getEldersById(Long id);

    /**
     * 获取药单编号
     */
    Result getMIds(Long elderId, Long nurseId);

    /**
     * 查看具体的服用情况
     */
    //Result getDetails(Long listNum,Long medicationListId);

    Result getDetails(List<Long> ids);

    /**
     * 生成今日用药记录
     * @return 不返回数据
     */
    Result generateTodayRecords();

    /**
     * 获取养老院的用药记录
     * @param name 养老院名称
     * @param pageSize 一页数据量
     * @param pageNum 页数
     * @param keyword 关键词
     * @param type 关键词匹配的字段名
     * @return 返回分页数据
     */
    Result getPageRecords(String name, Integer pageSize, Integer pageNum, String keyword, String type);

    /**
     * 获取相关信息
     * @param name 养老院名
     * @return 返回相关信息
     */
    Result getRecordsData(String name);

    /**
     * 导出用药记录
     * @param response 响应流
     * @param name 养老院名
     * @param id 导出老人的id
     */
    void export(HttpServletResponse response, String name, Long id);
}
